package model;

import java.math.BigDecimal;

public class CLiczba {
	
	public final static int PRECYZJA = 10;
	public final static int ZAOKRAGLENIE = BigDecimal.ROUND_HALF_UP;
	
	public final static CLiczba ZERO  = new CLiczba(0.0);
	public final static CLiczba JEDEN = new CLiczba(1.0);
	
	private BigDecimal liczba;

	public CLiczba(double liczba) {
		this.liczba = new BigDecimal(liczba).setScale(PRECYZJA, ZAOKRAGLENIE);
	}
	
	public CLiczba(BigDecimal liczba) {
		this.liczba = liczba.setScale(PRECYZJA, ZAOKRAGLENIE);
	}
	
	public BigDecimal getLiczba() {
		return liczba;
	}
	
	public CLiczba abs() {
		return new CLiczba(liczba.abs());

	}

	public CLiczba add(CLiczba arg0) {
		return new CLiczba(liczba.add(arg0.getLiczba()));
	}

	public byte byteValue() {
		return liczba.byteValue();
	}

	public int compareTo(CLiczba arg0) {
		return liczba.compareTo(arg0.getLiczba());
	}

	public CLiczba divide(CLiczba arg0) {
		return new CLiczba(liczba.divide(arg0.getLiczba(), PRECYZJA, ZAOKRAGLENIE));
	}

	public double doubleValue() {
		return liczba.doubleValue();
	}

	public boolean equals(Object arg0) {
		return liczba.equals(((CLiczba)arg0).getLiczba());
	}

	public int hashCode() {
		return liczba.hashCode();
	}

	public CLiczba max(CLiczba arg0) {
		return new CLiczba (liczba.max(arg0.getLiczba()));
	}

	public CLiczba min(CLiczba arg0) {
		return new CLiczba (liczba.min(arg0.getLiczba()));
	}

	public CLiczba multiply(CLiczba arg0) {
		return new CLiczba (liczba.multiply(arg0.getLiczba()));
	}

	public CLiczba negate() {
		return new CLiczba (liczba.negate());
	}

	public CLiczba subtract(CLiczba arg0) {
		return new CLiczba (liczba.subtract(arg0.getLiczba()));
	}

	public String toString() {
		return liczba.toString();
	}

	public int intValue() {
		return liczba.intValue();
	}
	
}
